编程参考 - C语言中将字符串转换为整数

C语言,主要有两种方法可以将字符串转为整数:atoi() 和 strtol()。

1,atoi()

Syntax: 

int atoi(const char *str);

包含的头文件是:stdlib.h

给定字符串的开头的空格会被忽略,从空格之后的字符开始转换,直到遇到第一个非数字的字符。

返回值就是转换后的结果。

例子:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main (void)

{

    int value;

    char str[20];

    strcpy(str,"123");

    value = atoi(str);

    printf("String value = %s, Int value = %d\n", str, value);

    return(0);

}

Output:

String value=123, Int value=123

如果转换失败,则返回0.

2,strtol()

Syntax:

long int strtol(const char *string, char **laststr,int basenumber);

包含的头文件是:stdlib.h

将一个字符串转换为长整型数。字符串开头的空格会忽略。当遇到第一个非数字字符时停止转换。

第一个参数是要转换的字符串,第二个是输出转换停止时的字符串位置,第三个是使用的进制,范围是2 ~ 36

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int main(void){

    char str[10];

    char *ptr;

    long value;

    strcpy(str, " 123");

    value = strtol(str, &ptr, 10);

    printf("decimal %ld\n", value);

    return 0;

}

Output:

decimal 123

如果转换失败,则返回0.

如果是16进制,则使用字母A~F,表示10~15.

如果是17禁止,则使用字母A~G,表示10~16.

如果是16禁止,传入字符串“FFF”,“0xFFF” 和 “0XFFF”,结果是一样的。

而atoi相当于:(int) strtol(str, (char **)NULL, 10)。

3,一些其他方法

还有一些其他函数,比如 strtoumax, strtoimax,  strtonum.

但这几个函数可能移植有问题,不是所有的C编译器都支持。

参考:

Convert a String to Integer in C | Delft Stack

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值